package etude.collecteur.impl;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;

//import java.nio.charset.Charset;
//import static org.junit.Assert.assertTrue;


import org.junit.Test;

import etude.collecteur.Analyzeur;
import etude.collecteur.Statistic;

public class AnalyzeurFileTest {
	
	@Test
	public void testAnalyze() {
		// Fixture

		byte[] donnees = new MockCollector().collect();
		
		Analyzeur underTest = new AnalyzeurFile();

		// Test
		Statistic[] result = underTest.analyze(donnees);
	
		// Assert
		assertNotNull(result);
		assertEquals(9, result.length);

		// Problème de dimensionnement du tableau result 
		for (int i = 0; i < result.length-1; i++) {
			
			Statistic stat = result[i];

			assertNotNull("La date est manquante sur l'élément "+i, stat.getDateCollecte());
			assertEquals("Le numéro de l'index n'est pas correcte "+i, i, stat.getIndex());	
			assertEquals("Le nombre de connexion utilisée n'est pas correcte pour l'élément "+i, 0, stat.getConnexionsUsed());
			assertEquals("Le nombre de connexion max utilisée n'est pas correcte pour l'élément "+i, 1, stat.getMaxConnexionsUsed());
			assertEquals("Le nombre de connexion max n'est pas correcte pour l'élément "+i, 50, stat.getMaxConnexions());
			assertEquals("Le temps d'attente moyen d'une connexion n'est pas correct pour l'élément "+i, 0, stat.getAverageWaitingConnexion());
			assertEquals("Le temps d'attente max moyen d'une connexion n'est pas correct pour l'élément "+i, 0, stat.getAverageMaxWaitingConnexion());
		}
	}
	

}
